package com.hochschild.seguridad.local.dao.hibernate;

import com.hochschild.seguridad.local.domain.OpcionPantallaSistema;
import com.hochschild.seguridad.local.dao.OpcionesPantallaSistemaDao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.persistence.EntityManagerFactory;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.jpa.support.JpaDaoSupport;
import org.springframework.stereotype.Repository;

@Repository
public class HibernateOpcionesPantallaSistemaDao extends JpaDaoSupport implements OpcionesPantallaSistemaDao{

	@Autowired
	EntityManagerFactory entityManagerFactory;
	
	@PostConstruct
	 public void init() {
		  super.setEntityManagerFactory(entityManagerFactory);
	}
	
    public OpcionPantallaSistema getById(int idOpcion) {

        String query="from OpcionPantallaSistema opcion where opcion.idOpcion = :idOpcion";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("idOpcion", idOpcion);

        try{
            return (OpcionPantallaSistema) this.getJpaTemplate().findByNamedParams(query, params).get(0);
        }catch(NullPointerException e){
            return null;
        }
    }

    public List<OpcionPantallaSistema> getAccionesInOpciones(String opciones) {

        String consulta = "from OpcionPantallaSistema opcion where opcion.idOpcion in (" + opciones + ")";

        try {
            return this.getJpaTemplate().find(consulta);
        } catch(NullPointerException e) {
            return null;
        }
    }

	
    
    
}
